home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 August (Alt) / CHIP 2005-08.1.iso / program / guvenlik / syslinux-3.07.exe / com32 / lib / fwrite.c < prev    next >
Encoding:
C/C++ Source or Header  |  2004-12-20  |  468 b   |  33 lines

  1. /*
  2.  * fwrite.c
  3.  */
  4.  
  5. #include <errno.h>
  6. #include <unistd.h>
  7. #include <stdio.h>
  8.  
  9. size_t _fwrite(const void *buf, size_t count, FILE *f)
  10. {
  11.   size_t bytes = 0;
  12.   ssize_t rv;
  13.   const char *p = buf;
  14.  
  15.   while ( count ) {
  16.     rv = write(fileno(f), p, count);
  17.     if ( rv == -1 ) {
  18.       if ( errno == EINTR || errno == EAGAIN )
  19.     continue;
  20.       else
  21.     break;
  22.     } else if ( rv == 0 ) {
  23.       break;
  24.     }
  25.  
  26.     p += rv;
  27.     bytes += rv;
  28.     count -= rv;
  29.   }
  30.  
  31.   return bytes;
  32. }
  33.